The present invention relates generally to graphical user interfaces for computer systems. More particularly, the present invention relates to systems and methods for interfacing applications and operating systems which provide for flexible manipulation between multiple layered windows.
The evolution of the computer industry is unparalleled in its rate of growth m and complexity. Personal computers, for example, which began as little more than feeble calculators with limited memory, tape-driven input and monochrome displays are now able to tackle almost any data processing task. While this meteoric increase in power was almost sufficient to satisfy the demand of application programmers and end users alike, the corresponding increase in complexity created an ease-of-use problem which the industry was somewhat slower in solving. Thus, designers were faced with a new challenge: to harness this computing power in a form usable by even those with relatively little computer training to smooth the transition of other industries into a computer-based information paradigm.
As a result, in the early to mid-1980's many new I/O philosophies, such as “user friendly”, “WYSIWYG” and “menu driven” came to the forefront of the industry. These concepts are particularly applicable to microcomputers, also known as personal computers, which are intended to appeal to a broad audience of computer users, including those who previously feared and mistrusted computers. An important aspect of computers which employ these concepts was, and continues to be, the interface which allows the user to input commands and data and receive results, which is commonly referred to as a graphical user interface (GUI).
FIG. 1 illustrates an exemplary GUI display. The GUI display illustrated in FIG. 1 is based on a visual metaphor which uses a monitor screen as a work surface, called a “desktop”. Icons 20, which can represent documents, applications, folders and system controls, can be presented on the desktop in relocatable regions termed “windows”. FIG. 1 illustrates two windows; an active window 12 and an inactive window 14. The term active window refers to a window which is on the topmost layer of the desktop, while the term inactive window refers to a window which is not on the top-most layer of the desktop. The user interacts with the computer by, for example, moving icons 20, choosing commands, e.g., command 6, from menus, e.g., menu 2, on menu bars, e.g., menu bar 1, and manipulating window controls, for example, with the use of a cursor 10.
FIG. 2 illustrates a conventional method for moving icons from an active window to an inactive window. Initially, the cursor is placed over the icon to be moved (Step 201) and the icon is selected (Step 202). Next the cursor is placed over the menu bar (Step 203) and the desired menu is selected (Step 204). The cursor is placed over the menu item corresponding to a desired operation to be performed on the selected icon (Step 205) and the menu item is selected (Step 206).
Once the operation to be performed on the selected icons has been selected the destination for the icon is selected. Accordingly, the cursor is placed over a visible portion of a window (Step 207) and the window is selected (Step 208). Next the user determines whether the selected window is the destination window (Step 209). If the selected window is not the destination window (“No” path out of decision Step 209) the user continues to place the cursor over visible portions of windows (Step 207) and continues to select the windows (Step 208) until the destination window has been selected. When the user determines that the selected window is the destination window (“Yes” path out of decision Step 209), the cursor is placed over the menu bar (Step 210) and the desired menu is selected (Step 211). Next the cursor is placed over the menu item corresponding to the desired operation (Step 212) and the menu item is selected (Step 213). Accordingly, the desired operation, e.g., pasting of the icon in the destination window, is completed.
It will be appreciated that moving icons between layered windows in accordance with conventional methods requires a user to perform many steps. Moreover, the deeper the destination window is below the active window the more steps will be required of a user to select the destination window. Furthermore, operations which require many steps to be performed in a particular order can confuse a user. This confusion may result in the user forgetting the objective of the original operation, e.g., forgetting which icon is being moved.